Semiconductor memories have recently attracted attention from a wide variety of business fields such as mass media, financial institutions and local governments. Stored-data protection function of the semiconductor memories is one of the reasons they are so attractive. Semiconductor memories having stored-data protection function are, for example, secure digital (SD) memory cards, integrated circuit (IC) cards and the like.
FIG. 1 is a diagram showing an overview of an internal structure of a commonly-used IC card. As shown in FIG. 1, an IC card 200 includes: a ROM 203 for storing application programs; a RAM 202 for temporarily storing data used for executing an application program; a CPU 201 for performing control processing such as various command processing according to the application programs stored in the ROM 203; and a rewritable EEPROM 204 for storing application programs downloaded from outside.
IC cards have now replaced most of magnetic cards used as credit cards and for other purposes. IC cards have advantageous characteristics over magnetic cards, including larger storage capacity and enhanced security function for stored information such as personal information.
An old-type IC card was capable of executing only one application program such as electronic money. However, with the increase in storage capacity and CPU processing speed, it has become possible to consolidate multiple application programs onto one IC card and execute them. Such a multi-application IC card enables the user (card holder) to use a variety of application programs with only one card.
The IC cards of this type which are capable of storing multiple application programs and executing them are hereinafter referred to as “multi-application IC cards.” In the following description, the cards of this type are also referred to just as “IC cards”.
FIG. 2 is a diagram showing a software structure of a conventional IC card. The IC card as software has a layer structure including: a memory area 310 which is used by multiple application programs, on the bottom layer; an operating system (OS) 311 on the memory area 310; and the multiple application programs on the top layer.
As shown in FIG. 2, an IC card 200 stores multiple application programs including a first client EC application program (first C_E_APL) 301, a second client EC application program (second C_E_APL) 302 and a client public application program (C_P_APL) 303.
In the case where multiple application programs are stored on a single IC card as mentioned above, the firewall function of the OS 311 prevents each application program from invading an area of the memory area 310 to be used by another application program. In other words, each application program has its own memory area in the memory area 310 for storing data relating to itself. In a conventional IC card, multiple application programs are stored independently of each other, and there is no means for allowing interaction between them.
Therefore, for example, in order to duplicate personal information stored in one area of the memory area 310 for an electronic money application program into another area of the memory area 310 for another application program, the data is duplicated via a server using its own application program other than the IC card.
Note that “APL” in the diagrams and description denotes “an application program” and “data of an application program” denotes “data relating to an application program” which is stored in a memory area exclusively for the application program. In addition, “duplicating data into an application program” denotes “duplicating data and storing the duplicated data into a memory area exclusively for the application program”.
FIG. 3 is a conceptual diagram showing how data is duplicated from one application program into another application program in a conventional IC card. Note that the IC card 200 and the EC server 100 communicate with each other via a reader/writer 121.
FIG. 3 shows the IC card 200 in which data A stored in the memory area of the first C_E_APL 321 is duplicated into the memory area of the second C_E_APL 322.
FIG. 3 also shows the case where the EC server 100 for providing electronic commerce services is used for such duplication of the data A.
As shown in FIG. 3, since there is the firewall 340 between the first C_E_APL 321 and the second C_E_APL 322, the data A cannot be duplicated inside the IC card 200. Therefore, the data A is duplicated via the EC server 100. The user of the EC server 100 determines whether to duplicate data or not and selects data to be duplicated.
First, the user selects data to be duplicated and requests the EC server 100 to execute the duplication. Upon receipt of the user's selection and request, the control APL 109 in the EC server 100 authenticates the reading APL 107 and the first C_E_APL 321 in the IC card 200, and further authenticates the writing APL 108 and the second C_E_APL 322.
After the authentication, the control APL 109 requests the reading APL 107 to read out the data. The reading APL 107 reads out the data A of the first C_E_APL 321 in the IC card 200 via the reader/writer 121. Next, the control APL 109 requests the writing APL 108 to write the data A. The writing APL 108 writes the data A into the memory area for the second C_E_APL 322 in the IC card 200 via the reader/writer 121.